Faits :
A.
Par jugement du 10 avril 2018, le Juge de police de l'arrondissement de la Sarine, statuant sur opposition à une ordonnance pénale du 13 décembre 2017, a acquitté A._ du chef de prévention d'incendie par négligence.
B.
Par arrêt du 3 juin 2019, la Cour d'appel pénal du Tribunal cantonal de l'Etat de Fribourg a admis l'appel formé par le ministère public fribourgeois contre ce jugement; elle a reconnu A._ coupable d'incendie par négligence et l'a condamné à 20 heures de travail d'intérêt général, avec sursis et délai d'épreuve de 2 ans, ainsi qu'à une amende de 300 fr., la peine privative de liberté de substitution en cas de non-paiement fautif de l'amende étant fixée à 3 jours.
Les faits à l'origine de cette condamnation sont en substance les suivants.
Le 27 juin 2017, vers 23 h 25, un incendie s'est déclaré dans une grange du complexe agricole dont A._ est propriétaire et dans laquelle il avait entreposé du fourrage. Le bâtiment et diverses machines agricoles ont été détruits par les flammes, les dégâts atteignant plusieurs centaines de milliers de francs.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre le jugement de la Cour d'appel pénal. Il conclut, avec suite de frais et dépens, à l'annulation de l'arrêt attaqué et à sa modification en ce sens que l'appel du ministère public dirigé contre le jugement du juge de police du 10 avril 2018 est rejeté et ce jugement confirmé.

Considérant en droit :
1.
Le recourant reproche à la cour cantonale d'avoir sur plusieurs points constaté les faits de manière arbitraire.
1.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (<ref-law>), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, à savoir, pour l'essentiel, de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat (<ref-ruling> consid. 2.3.1 p. 244), ce qu'il appartient au recourant d'alléguer et d'étayer conformément aux exigences de motivation strictes posées par l'<ref-law> (<ref-ruling> consid. 1.1 p. 503). Les critiques de nature appellatoire sont irrecevables (<ref-ruling> consid. 2.4 p. 368 et les références citées).
1.2. La cour cantonale s'est fondée sur une directive de l'Association des Etablissements cantonaux d'assurance incendie pour déterminer si le recourant s'était conformé aux règles de prudence qu'il devait respecter. S'agissant de l'entreposage de fourrage, cette directive prévoit que " la température des matières stockées telles que le foin et le regain doit être surveillée régulièrement au moyen d'une sonde pendant six semaines au moins après l'engrangement. Si la température atteint 55°C, il faut prendre d'autres mesures, par exemple aspirer les gaz produits par la fermentation, percer des trous d'aération et aménager des tranchées. Si la température dépasse 70°C, il faut alerter immédiatement les sapeurs-pompiers en raison du risque d'auto-inflammation ".
Il ressort de l'arrêt attaqué que le recourant a engrangé son fourrage le 26 mai 2017, soit moins de six semaines avant l'incendie qui s'est déclaré le 27 juin 2017. Il devait donc exercer une surveillance régulière et ne peut pas se prévaloir du fait que lors du troisième contrôle la sonde était moins chaude, raison pour laquelle il dit avoir arrêté les contrôles.
Le recourant, au demeurant au bénéfice d'une expérience de commandant du feu, n'a contesté connaître ni la directive de l'Association des Etablissements cantonaux d'assurance incendie ni la manière de mesurer la température des stockages de fourrage à l'aide d'une sonde, qui est détaillée dans le règlement intitulé " connaissances de base des corps de sapeurs-pompiers ". Il n'a néanmoins pas procédé au nombre requis de sondages puisqu'il a déclaré avoir sondé le foin à deux endroits, voire à trois ou quatre places, alors que le règlement imposait de sonder à un ou même plusieurs endroits chacune des 27 bottes de foin. Par ailleurs, les sondages effectués l'ont été au moyen d'une sonde défectueuse, qui ne permettait qu'une appréciation très approximative de la température. Le recourant lui-même ne prétend pas qu'il aurait été en mesure de déterminer si la limite des 55°C était atteinte puisqu'il se contentait d'un contrôle manuel sur la longueur de la sonde lui permettant d'estimer que la température devait être inférieure à 60°C (cf. arrêt attaqué p. 7 ch. 3.2.2 1er §).
L'appréciation des preuves de la cour cantonale est exempte d'arbitraire.
1.3. Invoquant une violation de la présomption d'innocence le recourant s'en prend en réalité au rapport de causalité retenu entre la négligence qui lui est imputée et l'incendie.
Le comportement imputé au recourant est le fait de n'avoir pas procédé aux sondages qui s'imposaient dans les six semaines suivant l'entreposage du fourrage. Il s'agit d'une infraction d'omission improprement dite (commission par omission). Pour savoir si le lien de causalité est donné dans un tel cas, il faut procéder par hypothèse et se demander si l'accomplissement de l'acte omis aurait, selon le cours ordinaire des choses et l'expérience de la vie, évité la survenance du résultat qui s'est produit, pour des raisons en rapport avec le but protecteur de la règle de prudence violée. Pour l'analyse des conséquences de l'acte supposé, il faut appliquer les concepts généraux de la causalité naturelle et de la causalité adéquate (<ref-ruling> consid. 4.4.1 p. 265 et les arrêts cités). L'existence de cette causalité dite hypothétique suppose une très grande vraisemblance; autrement dit, elle n'est réalisée que lorsque l'acte attendu ne peut pas être inséré intellectuellement dans le raisonnement sans en exclure, très vraisemblablement, le résultat (<ref-ruling> consid. 4a p. 185 et les références citées). La causalité adéquate est ainsi exclue lorsque l'acte attendu n'aurait vraisemblablement pas empêché la survenance du résultat ou lorsqu'il serait simplement possible qu'il l'eût empêché (arrêts 6B_948/2017 du 8 mars 2018 consid. 4.1).
Il n'appert pas, et le recourant ne le prétend d'ailleurs pas, que la température du fourrage qui a pris feu aurait pu s'élever de manière extrêmement rapide au point que son évolution ne soit pas détectée par des sondages réguliers. Par conséquent, si le recourant avait dûment procédé aux sondages, il aurait selon toute vraisemblance constaté une augmentation dangereuse de la température du fourrage entreposé dans sa grange, ce qui lui aurait permis de prendre des mesures, notamment celles préconisées par la directive de l'Association des Etablissements cantonaux d'assurance incendie mentionnées au consid. 1.2 ci-dessus, propres à éviter que l'incendie se déclare. Ainsi, l'accomplissement de l'acte dont l'omission est imputée au recourant aurait très vraisemblablement permis d'éviter l'incendie. Le lien de causalité entre le comportement du recourant et le dommage est donc donné et la cour cantonale n'a pas violé le droit fédéral en le reconnaissant coupable d'incendie par négligence.
2.
Mal fondé, le recours doit être rejeté et le recourant, qui succombe, supportera les frais de justice (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénal du Tribunal cantonal de l'Etat de Fribourg.
Lausanne, le 9 octobre 2019
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Paquier-Boinay