Crop Area & Production Data¶
What Data Is Available?¶
| Source | What It Has | Level | Access |
|---|---|---|---|
| aps.dac.gov.in | District crop area, production, yield (kharif/rabi/zaid) | District | 🟢 |
| agmarknet.gov.in | Daily mandi (market) prices, arrivals | Mandi | 🟢 |
| mospi.gov.in (DES) | State-level crop production statistics | State | 🟢 |
| agricoop.nic.in | Agricultural census (operational holdings) | District | 🟢 |
| fasal.gov.in | FASAL crop forecast (remote sensing-based) | District | 🟢 |
How to Download from aps.dac.gov.in¶
Comprehensive District Agriculture Statistics:
- Go to aps.dac.gov.in
- Click "Data Dissemination" → "Comprehensive District Agriculture Statistics"
- Select: State → District → Crop → Year → Season
- Click Download CSV
What the CSV contains:
| Column | Description |
|---|---|
State |
State name |
District |
District name |
Crop |
Crop name (Rice, Wheat, Sugarcane...) |
Season |
Kharif / Rabi / Zaid / Annual |
Year |
Agricultural year (e.g., 2021-22) |
Area_000_Ha |
Area under crop (in 000 hectares) |
Production_000_T |
Production (in 000 metric tonnes) |
Yield_Kg_Ha |
Yield (kg per hectare) |
Agmarknet — Mandi Prices¶
For daily commodity prices at wholesale mandis across India:
- Go to agmarknet.gov.in
- Select: Commodity → State → Market (Mandi) → Date range
- Download CSV — has daily arrival and price data
Key columns in Agmarknet:
- Market — Name of the APMC mandi
- Commodity — Crop name
- Min_Price / Max_Price / Modal_Price — Price per quintal (₹)
- Arrivals — Quantity arrived at mandi (quintals)
Python: Which Districts Produce the Most Rice?¶
import pandas as pd
import matplotlib.pyplot as plt
# Download from aps.dac.gov.in
df = pd.read_csv("district_crop_2021_22.csv")
# Filter: Rice, Kharif season, 2021-22
rice = df[(df['Crop'] == 'Rice') &
(df['Season'] == 'Kharif') &
(df['Year'] == '2021-22')].copy()
# Top 20 districts by rice production
top_rice = rice.nlargest(20, 'Production_000_T')[['State', 'District', 'Production_000_T', 'Yield_Kg_Ha']]
print(top_rice.to_string(index=False))
# Plot
fig, ax = plt.subplots(figsize=(10, 8))
top_rice.plot(kind='barh', x='District', y='Production_000_T', ax=ax,
color='steelblue', legend=False)
ax.set_xlabel("Rice Production (000 tonnes)")
ax.set_title("Top 20 Rice Producing Districts — Kharif 2021-22")
for i, (state, prod) in enumerate(zip(top_rice['State'], top_rice['Production_000_T'])):
ax.text(prod + 5, i, state, va='center', fontsize=8, color='gray')
plt.tight_layout()
plt.savefig("top_rice_districts.png", dpi=150)
plt.show()
✏️ Practice Exercise¶
Exercise 3.4 — Your District's Main Crop
Goal: Find the dominant crop in your district and how its area has changed.
- Go to aps.dac.gov.in
- Download data for your district → All Crops → All Seasons → 2010-11 to 2021-22
- Open in Excel → Create a PivotTable: Rows = Crop, Values = Area
- Which crop has the largest area? Is it kharif or rabi?
Track change over 10 years: - [ ] Has the area under your top crop increased or decreased? - [ ] Has yield (production per hectare) improved? - [ ] Are farmers shifting to any new crops?
Bonus — Check mandi prices: Go to agmarknet.gov.in and find the current modal price for your district's main crop. Is the farmer getting a good return?
Next Dataset: Water Resources (WRIS) →